In computer science and engineering, a runtime system (also known as a runtime environment or runtime) is designed to support the execution of computer software applications. The runtime system may implement low-level and/or higher-level commands and support type checking, debugging, or even code generation and optimization. The runtime system may be associated with one or more containers. Each container may include one or more contained components. A container may be a web container (also known as a servlet container) or a JavaServer Pages (JSP) container. The web container may be included in a server that interacts with the servlets. In some cases, the web container can implement a component contract of the Java enterprise edition (EE) architecture, specifying a runtime system for web components that includes security, concurrency, lifecycle management, transaction, deployment, and other services. The web container may be responsible for managing the lifecycle of servlets, mapping a uniform resource locator (URL) to a particular servlet and ensuring that the URL requester has the correct access rights.
In many cases, the performance of a runtime system depends on the resources available for utilization of the system. The available resources are typically shared by different components contained in the runtime system. Generally, the greater amount of resource consumed by one component can result in less amount of resource available to another component. The overall performance behavior of the runtime system may be based on the allocation of system resources to the contained components.